mybatis中<mappers> ,mapperLocations,和MapperScannerConfigurer 用法

您所在的位置:网站首页 mybatis mapperlocations 指定数据库 mybatis中<mappers> ,mapperLocations,和MapperScannerConfigurer 用法

mybatis中<mappers> ,mapperLocations,和MapperScannerConfigurer 用法

2024-07-09 20:19| 来源: 网络整理| 查看: 265

mybatis中<mappers> ,mapperLocations,和MapperScannerConfigurer 用法 1. mappers标签

在mybatis单独使用时,mybatis需要在mybatis-config.xml中配置mappers。mappers 标签下有许多 mapper 标签,每一个 mapper 标签中配置的都是一个独立的映射配置文件的路径,配置方式有以下几种: 1.1 第一种方式:mapper标签,通过resource属性引入classpath路径的相对资源

1.2mapper标签,通过url引入网络资源或者本地磁盘资源

1.3 第三种方式:mapper标签,通过class属性指定mapper接口名称,此时对应的映射文件必须与接口位于同一路径下,并且名称相同

如mapper接口采用注解的方式,则无需映射文件 windows系统下,映射文件不区分大小写,linux系统没有验证

1.4第四种方式:package标签,通过name属性指定mapper接口所在的包名 ,此时对应的映射文件必须与接口位于同一路径下,并且名称相同

如mapper接口采用注解的方式,则无需映射文件 windows系统下,映射文件不区分大小写,linux系统没有验证

2. mapperLocation属性(位于SqlSessionFactoryBean中):mapperLocation属性,主要用于指定mapper.xml文件所处的位置。

2.1如果Mapper.xml与Mapper.class在同一个包下且同名,spring 中MapperScannerConfigurer 扫描Mapper.class的同时会自动扫描同名的Mapper.xml并装配到Mapper.class。 2.2如果Mapper.xml与Mapper.class不在同一个包下或者不同名,就必须使用配置mapperLocations指定mapper.xml的位置。(如idea中 maven 默认不打包java文件夹下的xml文件,未在pom.xml中配置resource的情况下) 此时spring是通过识别mapper.xml中的 namespace的值来确定对应的Mapper.class的。

3. MapperScannerConfigurer:

自动扫描 将Mapper接口生成代理注入到Spring 3.1要创建 MapperScannerConfigurer,可以在 Spring 的配置中添加如下代码:

basePackage 属性是让你为映射器接口文件设置基本的包路径。 你可以使用分号或逗号 作为分隔符设置多于一个的包路径。每个映射器将会在指定的包路径中递归地被搜索到。

mybatis 整合spring之mapperLocations配置的问题

今天尝试spring整合mybatis时遇到这么一个问题,就是在配置sqlSessionFactory时是否要配置mapperLocations的问题。

结论是:如果Mapper.xml与Mapper.class在同一个包下且同名,spring扫描Mapper.class的同时会自动扫描同名的Mapper.xml并装配到Mapper.class。

如果Mapper.xml与Mapper.class不在同一个包下或者不同名,就必须使用配置mapperLocations指定mapper.xml的位置。

此时spring是通过识别mapper.xml中的 namespace的值来确定对应的Mapper.class的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3